'use strict';

/**
 * 将对象数组转为map, 需要绑定一个Set到this上
 * Example:
 * let handler = fillToMapHandler.bind(new Set());
 * 
 * @param  {array<object>} items 对象数组
 * @return {map}      Map结构
 */
function fillToMapHandler(items) {
    return items.reduce((map, item) => {
        if (this.add) {
            this.add(item.time_sheet);
        }
        map[item.time_sheet] = item.result; 
            // { '2010-01-01': 0,
            //   '2010-01-02': 1 }
        return map;
    }, {});
}

function fillMultiDataToMapHandler(items) {
    let result = {};

    items.map((item) => {
        if(!result[item.time_sheet]) {
            result[item.time_sheet] = Number(item.result);
        } else {
            result[item.time_sheet] += Number(item.result);
        }
    });

    return result;
}

module.exports = {
    fillToMapHandler,
    fillMultiDataToMapHandler
}
